Currently, multimedia content, for instance a video transmitted over the HTTP protocol, is viewed over the Internet via downloading or progressive downloading. In downloading, video content is displayed after the full video content has been downloaded, which usually results in a long startup delay before the video content can be viewed. With a large video file, the wait time is unacceptable and thus downloading is not suitable for online video playback. In addition, the high failure rate and retransmission in transport can also lead to waste of bandwidth and undue traffic congestion of the network.
Another method for network transmission of multimedia content is through progressive downloading, with which video can be played as soon as a small portion of it has been downloaded and the display startup delay is therefore reduced. The viewer can choose to continue playing the video while it is being downloaded or finish playing it. However, if the viewer stops playing the video in the middle, the entire video file may have already been downloaded and all the bandwidth would have been consumed. In addition, due to the Transmission Control Protocol (TCP) congestion control, end-to-end bandwidth fluctuates, which can cause frequent buffering, loaded user requests, and inconsistent server response time.
Traditionally there are two ways to limit bandwidth consumption in multimedia content transmission: Internet Protocol (IP) traffic shaping and multimedia content file slicing. While IP traffic shaping, i.e., with Linux, can only be set to single bit rate and therefore constraint the operation on mixed bit rate support, content file slicing often results in unnecessary operation overhead and inaccuracy in pacing due to the unnatural slicing, usually handled by content providers. Thus, it is highly desirable to have a multimedia content transmission system and a method that can offer accurate, native streaming control, and allow dynamic streaming of multimedia content in variable bit rate.